The embodiments described generally relate to peer-to-peer networks, particularly to a peer-to-peer protocol for streaming content.
A peer-to-peer network includes multiple peers that have established connections with each other. Each peer acts both as a supplier (i.e., sender) and consumer (i.e., receiver) of resources, which is different than the traditional client-server model in which servers supply and clients consume.
A peer-to-peer network may be used to distribute live content (e.g., stream a recording of a live event) to multiple peers. One way of distributing live content is by having each peer of the network forward each data block of the content received to its neighboring peers. This approach involves significant overhead in that each peer will receive the same block multiple times from different peers. Another way of distributing live content is to have each peer explicitly request data blocks needed from other peers. However, this approach may result in the latency (i.e., the amount of time it takes the peer to receive a data block) being high.